#ifndef __EXTERN_DEF_H
#define __EXTERN_DEF_H


extern int testdistance_fgUINT8(void);
extern int testdistance_fgUINT16(void);
extern int testdistance_fgUINT32(void);
extern int testdistance_fgINT8(void);
extern int testdistance_fgINT16(void);
extern int testdistance_fgINT32(void);
extern int testdistance_fgFLOAT32(void);
extern int testdistance_fgFLOAT64(void);

extern int testerode_fgUINT8(void);
extern int testerode_fgUINT16(void);
extern int testerode_fgUINT32(void);
extern int testerode_fgINT8(void);
extern int testerode_fgINT16(void);
extern int testerode_fgINT32(void);
extern int testerode_fgFLOAT32(void);
extern int testerode_fgFLOAT64(void);

extern int testerode2_fgUINT8(void);
extern int testerode2_fgUINT16(void);
extern int testerode2_fgUINT32(void);
extern int testerode2_fgINT8(void);
extern int testerode2_fgINT16(void);
extern int testerode2_fgINT32(void);
extern int testerode2_fgFLOAT32(void);
extern int testerode2_fgFLOAT64(void);

extern int testerode3_fgUINT8(void);
extern int testerode3_fgUINT16(void);
extern int testerode3_fgUINT32(void);
extern int testerode3_fgINT8(void);
extern int testerode3_fgINT16(void);
extern int testerode3_fgINT32(void);
extern int testerode3_fgFLOAT32(void);
extern int testerode3_fgFLOAT64(void);

extern int testerodeSq_fgBIT(void);
extern int testerodeSq_fgUINT8(void);
extern int testerodeSq_fgUINT16(void);
extern int testerodeSq_fgUINT32(void);
extern int testerodeSq_fgINT8(void);
extern int testerodeSq_fgINT16(void);
extern int testerodeSq_fgINT32(void);
extern int testerodeSq_fgFLOAT32(void);
extern int testerodeSq_fgFLOAT64(void);

extern int testerodeCr_fgBIT(void);
extern int testerodeCr_fgUINT8(void);
extern int testerodeCr_fgUINT16(void);
extern int testerodeCr_fgUINT32(void);
extern int testerodeCr_fgINT8(void);
extern int testerodeCr_fgINT16(void);
extern int testerodeCr_fgINT32(void);
extern int testerodeCr_fgFLOAT32(void);
extern int testerodeCr_fgFLOAT64(void);

extern int testerodeHex_fgBIT(void);
extern int testerodeHex_fgUINT8(void);
extern int testerodeHex_fgUINT16(void);
extern int testerodeHex_fgUINT32(void);
extern int testerodeHex_fgINT8(void);
extern int testerodeHex_fgINT16(void);
extern int testerodeHex_fgINT32(void);
extern int testerodeHex_fgFLOAT32(void);
extern int testerodeHex_fgFLOAT64(void);

extern int testerodeOct_fgBIT(void);
extern int testerodeOct_fgUINT8(void);
extern int testerodeOct_fgUINT16(void);
extern int testerodeOct_fgUINT32(void);
extern int testerodeOct_fgINT8(void);
extern int testerodeOct_fgINT16(void);
extern int testerodeOct_fgINT32(void);
extern int testerodeOct_fgFLOAT32(void);
extern int testerodeOct_fgFLOAT64(void);

extern int testdilateSq_fgBIT(void);
extern int testdilateSq_fgUINT8(void);
extern int testdilateSq_fgUINT16(void);
extern int testdilateSq_fgUINT32(void);
extern int testdilateSq_fgINT8(void);
extern int testdilateSq_fgINT16(void);
extern int testdilateSq_fgINT32(void);
extern int testdilateSq_fgFLOAT32(void);
extern int testdilateSq_fgFLOAT64(void);

extern int testdilateCr_fgBIT(void);
extern int testdilateCr_fgUINT8(void);
extern int testdilateCr_fgUINT16(void);
extern int testdilateCr_fgUINT32(void);
extern int testdilateCr_fgINT8(void);
extern int testdilateCr_fgINT16(void);
extern int testdilateCr_fgINT32(void);
extern int testdilateCr_fgFLOAT32(void);
extern int testdilateCr_fgFLOAT64(void);

extern int testdilateHex_fgBIT(void);
extern int testdilateHex_fgUINT8(void);
extern int testdilateHex_fgUINT16(void);
extern int testdilateHex_fgUINT32(void);
extern int testdilateHex_fgINT8(void);
extern int testdilateHex_fgINT16(void);
extern int testdilateHex_fgINT32(void);
extern int testdilateHex_fgFLOAT32(void);
extern int testdilateHex_fgFLOAT64(void);

extern int testdilateOct_fgBIT(void);
extern int testdilateOct_fgUINT8(void);
extern int testdilateOct_fgUINT16(void);
extern int testdilateOct_fgUINT32(void);
extern int testdilateOct_fgINT8(void);
extern int testdilateOct_fgINT16(void);
extern int testdilateOct_fgINT32(void);
extern int testdilateOct_fgFLOAT32(void);
extern int testdilateOct_fgFLOAT64(void);

extern int testminkowski_sub_fgUINT8(void);
extern int testminkowski_sub_fgUINT16(void);
extern int testminkowski_sub_fgUINT32(void);
extern int testminkowski_sub_fgINT8(void);
extern int testminkowski_sub_fgINT16(void);
extern int testminkowski_sub_fgINT32(void);
extern int testminkowski_sub_fgFLOAT32(void);
extern int testminkowski_sub_fgFLOAT64(void);

extern int testminkowski_add_fgUINT8(void);
extern int testminkowski_add_fgUINT16(void);
extern int testminkowski_add_fgUINT32(void);
extern int testminkowski_add_fgINT8(void);
extern int testminkowski_add_fgINT16(void);
extern int testminkowski_add_fgINT32(void);
extern int testminkowski_add_fgFLOAT32(void);
extern int testminkowski_add_fgFLOAT64(void);

extern int testdilate_fgUINT8(void);
extern int testdilate_fgUINT16(void);
extern int testdilate_fgUINT32(void);
extern int testdilate_fgINT8(void);
extern int testdilate_fgINT16(void);
extern int testdilate_fgINT32(void);
extern int testdilate_fgFLOAT32(void);
extern int testdilate_fgFLOAT64(void);
extern int testmedian_fgUINT8(void);
extern int testmedian_fgUINT16(void);
extern int testmedian_fgUINT32(void);
extern int testmedian_fgINT8(void);
extern int testmedian_fgINT16(void);
extern int testmedian_fgINT32(void);
extern int testmedian_fgFLOAT32(void);
extern int testmedian_fgFLOAT64(void);
extern int testgradient_inner_fgUINT8(void);
extern int testgradient_inner_fgUINT16(void);
extern int testgradient_inner_fgUINT32(void);
extern int testgradient_inner_fgINT8(void);
extern int testgradient_inner_fgINT16(void);
extern int testgradient_inner_fgINT32(void);
extern int testgradient_inner_fgFLOAT32(void);
extern int testgradient_inner_fgFLOAT64(void);
extern int testgradient_outer_fgUINT8(void);
extern int testgradient_outer_fgUINT16(void);
extern int testgradient_outer_fgUINT32(void);
extern int testgradient_outer_fgINT8(void);
extern int testgradient_outer_fgINT16(void);
extern int testgradient_outer_fgINT32(void);
extern int testgradient_outer_fgFLOAT32(void);
extern int testgradient_outer_fgFLOAT64(void);
extern int testgradient_thick_fgUINT8(void);
extern int testgradient_thick_fgUINT16(void);
extern int testgradient_thick_fgUINT32(void);
extern int testgradient_thick_fgINT8(void);
extern int testgradient_thick_fgINT16(void);
extern int testgradient_thick_fgINT32(void);
extern int testgradient_thick_fgFLOAT32(void);
extern int testgradient_thick_fgFLOAT64(void);
extern int testopen_fgUINT8(void);
extern int testopen_fgUINT16(void);
extern int testopen_fgUINT32(void);
extern int testopen_fgINT8(void);
extern int testopen_fgINT16(void);
extern int testopen_fgINT32(void);
extern int testopen_fgFLOAT32(void);
extern int testopen_fgFLOAT64(void);
extern int testclose_fgUINT8(void);
extern int testclose_fgUINT16(void);
extern int testclose_fgUINT32(void);
extern int testclose_fgINT8(void);
extern int testclose_fgINT16(void);
extern int testclose_fgINT32(void);
extern int testclose_fgFLOAT32(void);
extern int testclose_fgFLOAT64(void);
extern int testopen_tophat_fgUINT8(void);
extern int testopen_tophat_fgUINT16(void);
extern int testopen_tophat_fgUINT32(void);
extern int testopen_tophat_fgINT8(void);
extern int testopen_tophat_fgINT16(void);
extern int testopen_tophat_fgINT32(void);
extern int testopen_tophat_fgFLOAT32(void);
extern int testopen_tophat_fgFLOAT64(void);

extern int testclose_tophat_fgUINT8(void);
extern int testclose_tophat_fgUINT16(void);
extern int testclose_tophat_fgUINT32(void);
extern int testclose_tophat_fgINT8(void);
extern int testclose_tophat_fgINT16(void);
extern int testclose_tophat_fgINT32(void);
extern int testclose_tophat_fgFLOAT32(void);
extern int testclose_tophat_fgFLOAT64(void);

extern int testclose_tophat2_fgBIT(void);
extern int testclose_tophat2_fgUINT8(void);
extern int testclose_tophat2_fgUINT16(void);
extern int testclose_tophat2_fgUINT32(void);
extern int testclose_tophat2_fgINT8(void);
extern int testclose_tophat2_fgINT16(void);
extern int testclose_tophat2_fgINT32(void);
extern int testclose_tophat2_fgFLOAT32(void);
extern int testclose_tophat2_fgFLOAT64(void);

extern int testgeo_dilate_fgUINT8(void);
extern int testgeo_dilate_fgUINT16(void);
extern int testgeo_dilate_fgUINT32(void);
extern int testgeo_dilate_fgINT8(void);
extern int testgeo_dilate_fgINT16(void);
extern int testgeo_dilate_fgINT32(void);
extern int testgeo_dilate_fgFLOAT32(void);
extern int testgeo_dilate_fgFLOAT64(void);
extern int testgeo_erode_fgUINT8(void);
extern int testgeo_erode_fgUINT16(void);
extern int testgeo_erode_fgUINT32(void);
extern int testgeo_erode_fgINT8(void);
extern int testgeo_erode_fgINT16(void);
extern int testgeo_erode_fgINT32(void);
extern int testgeo_erode_fgFLOAT32(void);
extern int testgeo_erode_fgFLOAT64(void);

extern int testgeorec_dilate_fgUINT8(void);
extern int testgeorec_dilate_fgUINT16(void);
extern int testgeorec_dilate_fgUINT32(void);
extern int testgeorec_dilate_fgINT8(void);
extern int testgeorec_dilate_fgINT16(void);
extern int testgeorec_dilate_fgINT32(void);
extern int testgeorec_dilate_fgFLOAT32(void);
extern int testgeorec_dilate_fgFLOAT64(void);

extern int testgeorec_erode_fgUINT8(void);
extern int testgeorec_erode_fgUINT16(void);
extern int testgeorec_erode_fgUINT32(void);
extern int testgeorec_erode_fgINT8(void);
extern int testgeorec_erode_fgINT16(void);
extern int testgeorec_erode_fgINT32(void);
extern int testgeorec_erode_fgFLOAT32(void);
extern int testgeorec_erode_fgFLOAT64(void);

extern int testgeorec_dual_fgUINT8(void);
extern int testgeorec_dual_fgUINT16(void);
extern int testgeorec_dual_fgUINT32(void);
extern int testgeorec_dual_fgINT8(void);
extern int testgeorec_dual_fgINT16(void);
extern int testgeorec_dual_fgINT32(void);
extern int testgeorec_dual_fgFLOAT32(void);
extern int testgeorec_dual_fgFLOAT64(void);

extern int testgeorec_open_fgUINT8(void);
extern int testgeorec_open_fgUINT16(void);
extern int testgeorec_open_fgUINT32(void);
extern int testgeorec_open_fgINT8(void);
extern int testgeorec_open_fgINT16(void);
extern int testgeorec_open_fgINT32(void);
extern int testgeorec_open_fgFLOAT32(void);
extern int testgeorec_open_fgFLOAT64(void);

extern int testgeorec_close_fgUINT8(void);
extern int testgeorec_close_fgUINT16(void);
extern int testgeorec_close_fgUINT32(void);
extern int testgeorec_close_fgINT8(void);
extern int testgeorec_close_fgINT16(void);
extern int testgeorec_close_fgINT32(void);
extern int testgeorec_close_fgFLOAT32(void);
extern int testgeorec_close_fgFLOAT64(void);

extern int testgeorec_open_tophat_fgUINT8(void);
extern int testgeorec_open_tophat_fgUINT16(void);
extern int testgeorec_open_tophat_fgUINT32(void);
extern int testgeorec_open_tophat_fgINT8(void);
extern int testgeorec_open_tophat_fgINT16(void);
extern int testgeorec_open_tophat_fgINT32(void);
extern int testgeorec_open_tophat_fgFLOAT32(void);
extern int testgeorec_open_tophat_fgFLOAT64(void);

extern int testgeorec_close_tophat_fgUINT8(void);
extern int testgeorec_close_tophat_fgUINT16(void);
extern int testgeorec_close_tophat_fgUINT32(void);
extern int testgeorec_close_tophat_fgINT8(void);
extern int testgeorec_close_tophat_fgINT16(void);
extern int testgeorec_close_tophat_fgINT32(void);
extern int testgeorec_close_tophat_fgFLOAT32(void);
extern int testgeorec_close_tophat_fgFLOAT64(void);

extern int testlabel_fgUINT8(void);
extern int testlabel_fgUINT16(void);
extern int testlabel_fgUINT32(void);
extern int testlabel_fgINT8(void);
extern int testlabel_fgINT16(void);
extern int testlabel_fgINT32(void);
extern int testlabel_fgFLOAT32(void);
extern int testlabel_fgFLOAT64(void);

extern int testerodeRectangle_fgUINT8(void);
extern int testerodeRectangle_fgUINT16(void);
extern int testerodeRectangle_fgUINT32(void);
extern int testerodeRectangle_fgINT8(void);
extern int testerodeRectangle_fgINT16(void);
extern int testerodeRectangle_fgINT32(void);
extern int testerodeRectangle_fgFLOAT32(void);
extern int testerodeRectangle_fgFLOAT64(void);

extern int testdilateRectangle_fgUINT8(void);
extern int testdilateRectangle_fgUINT16(void);
extern int testdilateRectangle_fgUINT32(void);
extern int testdilateRectangle_fgINT8(void);
extern int testdilateRectangle_fgINT16(void);
extern int testdilateRectangle_fgINT32(void);
extern int testdilateRectangle_fgFLOAT32(void);
extern int testdilateRectangle_fgFLOAT64(void);

extern int testopenRectangle_fgUINT8(void);
extern int testopenRectangle_fgUINT16(void);
extern int testopenRectangle_fgUINT32(void);
extern int testopenRectangle_fgINT8(void);
extern int testopenRectangle_fgINT16(void);
extern int testopenRectangle_fgINT32(void);
extern int testopenRectangle_fgFLOAT32(void);
extern int testopenRectangle_fgFLOAT64(void);

extern int testcloseRectangle_fgUINT8(void);
extern int testcloseRectangle_fgUINT16(void);
extern int testcloseRectangle_fgUINT32(void);
extern int testcloseRectangle_fgINT8(void);
extern int testcloseRectangle_fgINT16(void);
extern int testcloseRectangle_fgINT32(void);
extern int testcloseRectangle_fgFLOAT32(void);
extern int testcloseRectangle_fgFLOAT64(void);

extern int testopenTopHatRectangle_fgUINT8(void);
extern int testopenTopHatRectangle_fgUINT16(void);
extern int testopenTopHatRectangle_fgUINT32(void);
extern int testopenTopHatRectangle_fgINT8(void);
extern int testopenTopHatRectangle_fgINT16(void);
extern int testopenTopHatRectangle_fgINT32(void);
extern int testopenTopHatRectangle_fgFLOAT32(void);
extern int testopenTopHatRectangle_fgFLOAT64(void);

extern int testcloseTopHatRectangle_fgUINT8(void);
extern int testcloseTopHatRectangle_fgUINT16(void);
extern int testcloseTopHatRectangle_fgUINT32(void);
extern int testcloseTopHatRectangle_fgINT8(void);
extern int testcloseTopHatRectangle_fgINT16(void);
extern int testcloseTopHatRectangle_fgINT32(void);
extern int testcloseTopHatRectangle_fgFLOAT32(void);
extern int testcloseTopHatRectangle_fgFLOAT64(void);

extern int testerodeLineHorizontal_fgUINT8(void);
extern int testerodeLineHorizontal_fgUINT16(void);
extern int testerodeLineHorizontal_fgUINT32(void);
extern int testerodeLineHorizontal_fgINT8(void);
extern int testerodeLineHorizontal_fgINT16(void);
extern int testerodeLineHorizontal_fgINT32(void);
extern int testerodeLineHorizontal_fgFLOAT32(void);
extern int testerodeLineHorizontal_fgFLOAT64(void);

extern int testdilateLineHorizontal_fgUINT8(void);
extern int testdilateLineHorizontal_fgUINT16(void);
extern int testdilateLineHorizontal_fgUINT32(void);
extern int testdilateLineHorizontal_fgINT8(void);
extern int testdilateLineHorizontal_fgINT16(void);
extern int testdilateLineHorizontal_fgINT32(void);
extern int testdilateLineHorizontal_fgFLOAT32(void);
extern int testdilateLineHorizontal_fgFLOAT64(void);

extern int testcloseLineHorizontal_fgUINT8(void);
extern int testcloseLineHorizontal_fgUINT16(void);
extern int testcloseLineHorizontal_fgUINT32(void);
extern int testcloseLineHorizontal_fgINT8(void);
extern int testcloseLineHorizontal_fgINT16(void);
extern int testcloseLineHorizontal_fgINT32(void);
extern int testcloseLineHorizontal_fgFLOAT32(void);
extern int testcloseLineHorizontal_fgFLOAT64(void);

extern int testopenLineHorizontal_fgUINT8(void);
extern int testopenLineHorizontal_fgUINT16(void);
extern int testopenLineHorizontal_fgUINT32(void);
extern int testopenLineHorizontal_fgINT8(void);
extern int testopenLineHorizontal_fgINT16(void);
extern int testopenLineHorizontal_fgINT32(void);
extern int testopenLineHorizontal_fgFLOAT32(void);
extern int testopenLineHorizontal_fgFLOAT64(void);


extern int testdilate_preserving_skiz_fgUINT8(void);
extern int testdilate_preserving_skiz_fgUINT16(void);
extern int testdilate_preserving_skiz_fgUINT32(void);
extern int testdilate_preserving_skiz_fgINT8(void);
extern int testdilate_preserving_skiz_fgINT16(void);
extern int testdilate_preserving_skiz_fgINT32(void);
extern int testdilate_preserving_skiz_fgFLOAT32(void);
extern int testdilate_preserving_skiz_fgFLOAT64(void);

extern int testdilate_preserving_skiz2_fgUINT8(void);
extern int testdilate_preserving_skiz2_fgUINT16(void);
extern int testdilate_preserving_skiz2_fgUINT32(void);
extern int testdilate_preserving_skiz2_fgINT8(void);
extern int testdilate_preserving_skiz2_fgINT16(void);
extern int testdilate_preserving_skiz2_fgINT32(void);
extern int testdilate_preserving_skiz2_fgFLOAT32(void);
extern int testdilate_preserving_skiz2_fgFLOAT64(void);

extern int testdilate_preserving_skiz3_fgUINT8(void);
extern int testdilate_preserving_skiz3_fgUINT16(void);
extern int testdilate_preserving_skiz3_fgUINT32(void);
extern int testdilate_preserving_skiz3_fgINT8(void);
extern int testdilate_preserving_skiz3_fgINT16(void);
extern int testdilate_preserving_skiz3_fgINT32(void);
extern int testdilate_preserving_skiz3_fgFLOAT32(void);
extern int testdilate_preserving_skiz3_fgFLOAT64(void);

extern int testdilate_preserving_skiz4_fgUINT8(void);
extern int testdilate_preserving_skiz4_fgUINT16(void);
extern int testdilate_preserving_skiz4_fgUINT32(void);
extern int testdilate_preserving_skiz4_fgINT8(void);
extern int testdilate_preserving_skiz4_fgINT16(void);
extern int testdilate_preserving_skiz4_fgINT32(void);
extern int testdilate_preserving_skiz4_fgFLOAT32(void);
extern int testdilate_preserving_skiz4_fgFLOAT64(void);

extern int testdilate_preserving_skiz5_fgUINT8(void);
extern int testdilate_preserving_skiz5_fgUINT16(void);
extern int testdilate_preserving_skiz5_fgUINT32(void);
extern int testdilate_preserving_skiz5_fgINT8(void);
extern int testdilate_preserving_skiz5_fgINT16(void);
extern int testdilate_preserving_skiz5_fgINT32(void);
extern int testdilate_preserving_skiz5_fgFLOAT32(void);
extern int testdilate_preserving_skiz5_fgFLOAT64(void);



#endif
